package com.draven.mall.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 骑手入驻申请实体类
 */
@Data
@TableName("tb_rider_application")
public class RiderApplication implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("name")
    private String name;              // 姓名

    @TableField("phone")
    private String phone;             // 联系电话

    @TableField("id_number")
    private String idNumber;          // 身份证号

    @TableField("vehicle_type")
    private String vehicleType;       // 车辆类型

    @TableField("id_card_front")
    private String idCardFront;       // 身份证正面照片

    @TableField("id_card_back")
    private String idCardBack;        // 身份证背面照片

    @TableField("driver_license")
    private String driverLicense;     // 驾驶证照片

    @TableField("vehicle_license")
    private String vehicleLicense;    // 行驶证照片

    @TableField("rider_photo")
    private String riderPhoto;        // 骑手照片

    @TableField("bank_card")
    private String bankCard;          // 银行卡号

    @TableField("bank_name")
    private String bankName;          // 开户行

    @TableField("status")
    private Integer status;           // 状态：0-待审核，1-审核通过，2-审核拒绝

    @TableField("reject_reason")
    private String rejectReason;      // 拒绝原因

    @TableField("auditor_id")
    private Long auditorId;           // 审核人ID

    @TableField("audit_time")
    private Date auditTime;           // 审核时间

    @TableField("created_time")
    private Date createdTime;         // 创建时间

    @TableField("updated_time")
    private Date updatedTime;         // 更新时间

    // 手动添加getter方法以避免Lombok可能存在的问题
    public Long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getPhone() {
        return phone;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public Integer getStatus() {
        return status;
    }

    public Date getCreatedTime() {
        return createdTime;
    }
}